# ----商超管理系统（容器版）----
# 项目需求：
# 系统需要用户先登录，再进行操作，其中包含一下功能菜单：
# 1.显示商品列表
# 2.增加商品
# 3.删除商品
# 4.设置折扣
# 5.修改价格
# 6.按价格排序（升序、降序
# 7.退出
#   a.	使用列表嵌套字典的方式保存用户数据（包含用户名，密码，姓名）；
#   b.	使用列表嵌套字典的方式保存商品数据（包含编号，名称，价格，折扣）；
#   c.	编写用户登录的函数，返回登录结果；
#   d.	循环提示菜单，业务完毕时返回主菜单，退出时回到登陆页面；
#   e.	将功能菜单中的业务功能各自编写到函数中；
#   f.	用户选择不同业务编号时，调用已经写好的各种函数。

print("----商超管理系统（容器版）----")

user1 = {'id': '1001', 'username': '张三', 'password': '123'}
user2 = {'id': '1002', 'username': '李四', 'password': '123'}
user3 = {'id': '1003', 'username': '王五', 'password': '123'}
user_list = [user1, user2, user3]


# 实现登录
def login():
    """
    :return: 返回登录状态，1代表登录成功，0代表登录失败
    """
    tag = 0
    name = input('请输入你的用户名：')
    pwd = input('请输入你的密码：')
    for user in user_list:
        if name == user['username'] and pwd == user['password']:
            tag = 1
            break
    if tag == 1:
        return 1
    else:
        return 0


# print(assert())
# print(assert())
# 1.显示商品列表
p1 = {"编号": "1001", "名称": "苹果", "价格": 5, "折扣": 1}
p2 = {"编号": "1002", "名称": "香蕉", "价格": 3, "折扣": 1}
p3 = {"编号": "1003", "名称": "牛奶", "价格": 4, "折扣": 1}
p4 = {"编号": "1004", "名称": "白菜", "价格": 1, "折扣": 1}
p5 = {"编号": "1005", "名称": "西瓜", "价格": 3, "折扣": 1}
products_list = [p1, p2, p3, p4, p5]


def showProducts():
    print("-----------------商品显示-------------------")
    print("----商品编号----商品名称----价格----折扣----")
    for products in products_list:
        print(f"     {products['编号']}      {products['名称']}        {products['价格']}     {products['折扣']}")
        # print("-------------------------------------")


# print(showProducts())


# 2.增加商品
def add_products():
    list_id = []  # 新建一个存放编号的列表
    for products in products_list:
        list_id.append(int(products['编号']))
        # print(type(list_id))
    new_id = str(max(list_id) + 1)
    newname = input("请输入新增商品的名称：")
    new_price = int(input("请输入新增商品的单价："))
    new_discount = input("请输入新增商品的折扣价：")
    new_products = {"编号": new_id, "名称": newname, "价格": new_price, "折扣": new_discount}
    products_list.append(new_products)
    print(f"-------商品：{newname}添加成功-------")
    showProducts()



print(add_products())


# 3.删除商品
def del_products():
    while 1:
        delId = input("请输入你想要删除的商品编号：")
        tag = 0  # 记录商品是不是存在
        for products in products_list:
            if delId == products['编号']:
                products_list.remove(products)
                print("该商品成功删除")
                tag = 1
                break
        if tag == 0:
            print("该商品不存在")
            choice = int(input("请选择1.重新输入；2.退出："))
            if choice == 1:
                continue
            elif choice == 2:
                break
        else:
            showProducts()
            break


# print(del_products())
# 4.设置折扣
def discount_products():
    while 1:
        id = input("请输入需要设置商品折扣的商品编号为：")
        tag = 0  # 查看商品是否存在
        for products in products_list:

            # print(type(new_discount))
            if id == products['编号']:
                new_discount = int(input(f"请输入{products['名称']}的折扣为："))
                products['折扣'] = int(new_discount)
                print(f"---商品{products['名称']}折扣为{products['折扣']}")
                tag = 1
                break
        if tag == 0:
            print("商品不存在！")
            choice = int(input('1.重新输入，2.取消：'))
            if choice == 1:
                continue
            elif choice == 2:
                break
        else:
            showProducts()
            break


# print(discount_products())


# 5.修改价格
def mod_products():
    while 1:
        tag = 0
        id = input("请输入你想要调整的商品编号：")
        for products in products_list:
            if id == products['编号']:
                new_price = int(input(f"请输入{products['名称']}的新价格："))
                products['价格'] = new_price
                print(f"----商品{products['名称']}修改后的价格为{products['价格']}")
                tag = 1
                break
        if tag == 0:
            print("商品不存在！")
            choice = int(input('1.重新输入，2.取消：'))
            if choice == 1:
                continue
            elif choice == 2:
                break
        else:
            showProducts()
            break


# print(mod_products())


# 6.按价格排序（升序、降序
def sort_products():
    choice = input('请选择排序方式：1.升序、2.倒序:')
    if choice == '1':
        products_list.sort(key=lambda x: x['价格'])
        showProducts()
    elif choice == '2':
        products_list.sort(key=lambda x: x['价格'], reverse=True)
        showProducts()
    else:
        print('请选择正确的排序方式')

print(sort_products())
# while 0 == 0:
#     result = assert()
#     if result == 1:
#         if 1 == 1:
#             while 2 == 2:
#                 print("----------------主菜单---------------")
#                 print("---1.显示商品列表")
#                 print("---2.增加商品信息")
#                 print("---3.删除商品")
#                 print("---4.设置商品折扣")
#                 print("---5.修改商品信息")
#                 print("---6.按价格排序（升序、降序)")
#                 print("---7.退出")
#
#                 choice = int(input("请选择业务编号（输入1-6）："))
#                 if choice == 1:
#                     showProducts()
#                 elif choice == 2:
#                     add_products()
#                 elif choice == 3:
#                     del_products()
#                 elif choice == 4:
#                     discount_products()
#                 elif choice == 5:
#                     mod_products()
#                 elif choice == 6:
#                     sort_products()
#                 elif choice == 7:
#                     print("-------------正在退出...")
#                     break
#                 else:
#                     print("没有此功能，请重新选择！")
#                     continue
